import pandas as pd
import matplotlib.pyplot as plt

# 读取Excel文件
file_path = 'd:\\Users\\Administrator\\Desktop\\git\\数据\\FhjlViewDD.xlsx'
data = pd.read_excel(file_path)

# 配置列名
date_col = '创建时间'
location_col = '发货地'
weight_col = '净重'

# 筛选6月数据
if all(col in data.columns for col in [date_col, location_col, weight_col]):
    # 转换日期
    data[date_col] = pd.to_datetime(data[date_col])
    
    # 筛选6月数据
    june_data = data[data[date_col].dt.month == 6]
    
    # 按发货地统计货运量
    location_stats = june_data.groupby(location_col)[weight_col].sum().sort_values(ascending=False)
    
    # 绘制饼图
    plt.figure(figsize=(12, 12))
    
    # 设置中文字体
    plt.rcParams['font.sans-serif'] = ['SimHei']
    plt.rcParams['axes.unicode_minus'] = False
    
    # 绘制饼图并调整标签大小和间距
    plt.pie(location_stats, 
            labels=location_stats.index, 
            autopct='%1.1f%%', 
            startangle=90,
            pctdistance=0.85,  # 调整百分比标签位置
            labeldistance=1.05,  # 调整标签距离
            textprops={'fontsize': 12})
    plt.title('6月各发货地货运量占比', fontsize=16)
    
    # 调整图例位置和字体大小
    plt.legend(loc='upper right', 
               bbox_to_anchor=(1.3, 1),  # 增加图例与饼图的距离
               fontsize=12,
               title='发货地',
               title_fontsize=12)
    
    # 保存图表
    plt.savefig('june_shipping_location_distribution.png')
    plt.show()
    
    # 打印统计结果
    print("6月各发货地货运量统计:")
    print(location_stats)
else:
    print("错误：缺少必要的数据列，请检查列名配置")
    print("当前配置:", {
        '日期列': date_col,
        '发货地列': location_col,
        '重量列': weight_col
    })
    print("可用列名:", data.columns.tolist())